# -*- coding: utf-8 -*-
# NB协议通用设计分析
def split_string(input_string):
    # 前20个字符作为第一部分，单个字符放进data里
    data = list(input_string[:20])
    header = list(input_string[:2])
    RSRP = list(input_string[2:6])
    SNR = list(input_string[6:10])
    CELL_ID = list(input_string[10:18])
    pciecl = list(input_string[18:24])
    cmd =list(input_string[24:26])
    cmd_num_need_ack  = list(input_string[26:36])
    body_len = list(input_string[36:40])
    body = list(input_string[40:])

    # 从第21个字符开始作为第二部分，计算长度
    second_part_length = len(input_string[40:])

    return data, header, RSRP, second_part_length, SNR, CELL_ID, pciecl, cmd, cmd_num_need_ack, body_len, body

def updatecase06(input_string):
    # 上报-- 06协议 设备性能状态变更批量上报
    device_count = list(input_string[40:42])
    length = list(input_string[42:44])
    device_type = list(input_string[44:46])


    #小型vam
    beforesix = list(input_string[46:58])
    svamswitches = list(input_string[58:60])
    svammode = list(input_string[60:62])
    svamair_flow = list(input_string[62:64])

    return device_count,length,device_type, beforesix, svamswitches, svammode, svamair_flow

def updatedevicelist(input_string):
    # 03 IPbox子设备列表上报
    fristdevice = list(input_string[40:])
    y=2
    while y <= len(body):

        list1 = body[y:y+12]
        print("这是-----",list1)
        y=y+12

    return list1






def receiveifmt(data):
    return 1

# 示例字符串
input_str = "01fcb400a80b2cdfd200af0024020000000112000211c0e5e075337b67080101025539010101"
input_str1 = "0123456789abcdefghijmlnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

# 调用函数
data, header, RSRP, second_part_length, SNR, CELL_ID, pciecl, cmd, cmd_num_need_ack, body_len, body = split_string(input_str)
# 上报/下发body 调用
device_count, length, device_type, beforesix, svamswitches, svammode, svamair_flow = updatecase06(input_str)
list1= updatedevicelist(input_str)
for i in header[1] :
    if '3' in i :
        print("0x03 -- 设备数据采集上报")
        # print("设备性能状态变更批量上报", device_state_change)
        break
    if '1' in i :
        print("0x01 -- 设备事件上报")
        # 协议号判断
        if '6' in cmd[1]:#06 协议号
            print("*cmd 06* 设备性能状态变更批量上报")
            print("**设备数量 cunt :",device_count)
            print("**长度 length",length)
            print("**设备类型 device type",device_type)
            for i in device_type[1]:
                if i == '2':
                    print("---02 室内机")
                if i == '3':
                    print("---03 室外机")
                if i == '4':
                    print("---04 地暖")
                if i == '5':
                    print("---05 新风")
                if i == '6':
                    print("---06 小型vam ")
                    print('**** 小vam 前6位 最后一位长度',beforesix)
                    print('**** svamswitches, 开关', svamswitches)
                    for i in svamswitches[1]:
                        if i =='0':
                           print("小vam 关")
                        if i =='1':
                            print("小vam 开")
                    print('**** svammode, 模式', svammode)
                    for i in svammode[1]:
                        if i =='0':
                           print("内循环")
                        if i =='1':
                            print("热交换")
                        if i =='2':
                            print("自动模式")
                        if i =='3':
                            print("防污染")
                        if i =='4':
                            print("排异味")
                    print('**** svamair_flow，风速大小', svamair_flow)
                    for i in svamair_flow[1]:
                        if i =='1':
                            print("静音")
                        if i =='2':
                            print("中")
                        if i =='3':
                            print("大")
                        if i =='4':
                            print("暴风")
        if '3' in cmd[1]:  # 06 协议号
            print("cmd 03 ipbox 子设备列表上报")
            print(list1)


        break
    if '2' in i :
        print("0x02 -- 设备控制下发")
        break
    if '4' in i :
        print("0x04 -- 设备配置下发")
        break

# 输出结果
# print("第一部分（前20个字符）：", data)
print("第二部分长度：", second_part_length)
print("指令包头 1 header：", header)
# print("参考信号接收功率 2 RSRP:", RSRP)
# print("信噪比 2 SNR:", SNR)
# print("小区识别码 4 CELL_ID:", CELL_ID)
# print("物理小区编码+覆盖等级 2+1 pciecl:", pciecl)
print("指令类型 1 cmd：", cmd)
# print("指令编号+是否需要回复 4+1 cmd_num_need_ack:", cmd_num_need_ack)
print("发送主体长度 2 body_len:", body_len)
print("发送主体 N body：", body)